package com.lkm.app_ui.m.nfc;

import com.lkm.frame.entity.ResponEntityAbs;
import com.lkm.frame.module.IModule;
import com.lkm.frame.task2.Task;
import com.lkm.hardware_connect.ConnectTaskResult;
import com.lkm.javatool.lang.RunnablePR;




public interface NFC_Module extends IModule {






    

    Task<Void, String, ConnectTaskResult> connect(boolean isFailReconnect);

    

    boolean isConnect();

    

    <P, PR> Task<P, PR, ResponEntityAbs<String>> tryReadCardNum();

    void loadKey(byte[] key);

    void disConnect();


    
    Task<Object, Object, ResponEntityAbs<byte[]>> tryReadBolck(int sectorIndex,int blockIndex) ;

    

    <P, PR> Task<P, PR, String> waitReadVipInfo();

    

    void setOnCardInRun(RunnablePR<String, Void> onCardInRun) ;
}
